/**
 * Formulario para agregar y editar usuarios. Para HTS
 * @class Extmx.form.file.FormPanel
 * @extends Extmx.FormPanel
 * @autor Ing. Josue Hernandez Gomez<br>
 *        joshua@extjs.mx<br>
 *        http://www.joshua.com.mx
 * @fecha 14 de noviembree 2010. M&eacute;xico DF
 */
Ext.ns("Extmx.form.file.FormPanel");
		
Extmx.form.file.FormPanel=Ext.extend(Extmx.FormPanel,{

	frame:true,
    
	fileUpload: true,
	
	/**
	 * @cfg String fieldLabel Titulo del fieldlabel que aparece al lado del campo de archivo
	 */
	fieldLabel: "Archivo",
	
	/**
	 * @cfg String clase Nombre de la clase del controlador a donde se redirecciona
	 */
	clase:"",
	
	/**
	 * @cfg String metodo Nombre del metodo del controlador que se invoca
	 */
	metodo:"",

        /**
	 * @cfg Json del metodo del controlador que se invoca
	 */
        datos:"",
	
	/**
	 * @cfg Entero labelWidth Por defecto tiene 60
	 */
	labelWidth:60,

    allowBlank: false,

    nameFile:'userfile',

    initComponent: function (){
        Ext.apply(this, {
            border:false,
            items: this.getItems()
        });

        Extmx.form.file.FormPanel.superclass.initComponent.apply(this,arguments);
    },

    getItems: function (){
        return [{
	            xtype: 'fileuploadfield',
	            emptyText: 'Selecciona un archivo',
	            fieldLabel: this.fieldLabel,
	            id:"file"+this.id,
	            allowBlank: this.allowBlank,
	            name: this.nameFile,//por defecto espera ese nombre
                    width:250,
	            buttonCfg: {
					text:' ',
	                iconCls: 'add'
	            }
	        },{
                    xtype:"hidden",
                    name:'datos',
                    value:this.datos
            }];
    },
	
	isValid: function (){
		return Ext.getCmp("file"+this.id).isValid();
	},
	
    submit: function (){
        var bp= this.baseParams ||{};
        this.getForm().submit(Ext.apply({
            url: "index.php/"+this.clase+"/"+this.metodo,
            success: function(form, action) {
                //Extmx.alert("¡El archivo se cargo correctamente!","Exito");
        		this.fireEvent("agregado",this,action.result);
            },
            failure: function (a,b){
            	Ext.getCmp('file'+this.id).markInvalid(b.result.error);
            	this.fireEvent("error", b.result.error);
            },
            scope:this
        }, bp)) ;
    },
    
    cargar: Ext.emptyFn,
	
	validate: Ext.emptyFn
});